1. Field
An embodiment of the present invention relates to an information processing apparatus that causes a plurality of program modules to execute a process.
2. Description of the Related Art
The execution sequence of modules in control software having a plurality of program modules (simply called “modules” hereinafter) to control a specific apparatus is frequently determined. In the execution sequence of the modules, the modules other than the forefront module, that is the uppermost stream module, each start the process of its own module upon completion of the execution of the process of the immediately preceding module, that is, the next previous module on the upstream side.
In such an execution sequence, there are cases where the execution of a plurality of modules is started on completion of the execution of one module. Therefore, there are cases where a plurality of last, that is, downmost stream modules is present.
Expressing the unit of a series of processes by all the modules as an event, in the above-described control software, one event occurs by the occurrence of one external input or one interrupt for the forefront module. In some pieces of such control software, a plurality of events can coexist.
For example, in the control software executed by the computer incorporated in a fully automatic washing machine, the execution sequence of the modules that control water feeding, agitation, water draining, water feeding, rinsing, water draining, and dehydration, respectively, is determined. However, since the fully automatic washing machine has only one washing and drying tub to be controlled, an event never occurs before the preceding event is completed. On the other hand, for example, in the control software executed by the computer incorporated in a service processor for mainframe management, the execution sequence of the modules that control the reception of trouble information from each unit in the mainframe, the log storage of the trouble information, and the reporting of the trouble information to the outside, respectively, is also determined. However, in the mainframe and the like, since the reception and the reporting, to the outside, of trouble information can be performed at the same time, a plurality of events can coexist.
Like general systems, computers that execute this type of control software are necessarily rebooted when some kind of trouble occurs. Moreover, when there is an incomplete event for which the process is interrupted in the middle of the execution sequence at the time of the occurrence of trouble, it is necessary to complete the incomplete event.
To satisfy this demand, a function of continuing the processing of the event that is incomplete at the time of the occurrence of trouble from the middle of the execution sequence after the reboot was considered as a new function of the control software.
However, to incorporate such a function in the control software, it is necessary to make individual arrangements between upstream modules and downstream modules, and it was predicted that this would make the design of the control software extremely complicated.
Therefore, a function of re-executing the processing of the event that is incomplete at the time of the occurrence of trouble from the uppermost stream module instead of continuing the process from the middle of the execution sequence was considered as a new function of the control software. As an operation considered for this function, the identification information to identify the event that occurs in the forefront module is stored in a nonvolatile memory as a log, the identification information related to the event that is incomplete when the trouble occurs is extracted from the log after the reboot, and the extracted identification information is inputted to the forefront module.
However, even though the event itself is incomplete when trouble occurs, in many cases, the process has been finished up to a module that is present in the middle of the execution sequence. If the process of such an incomplete event is re-executed from the forefront module after the reboot, the contents outputted from any of the modules before the occurrence of the trouble are sometimes duplicately outputted from the same module.
[Patent Document 1] Japanese Unexamined Patent Application Publication No. 2003-316750